package com.naiterui.ehp.bs.emr.entity.mongo;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;

import com.naiterui.ehp.bs.emr.vo.amc.AmcResultVO;

/**
 * 患者发送基本病历
 *
 * @author wangzehao
 * @date 2018/11/21 10:55 AM
 * @since 1.0.0
 */
public abstract class BaseMedicalRecordPatient implements java.io.Serializable {
    private static final long serialVersionUID = 1310103253427995497L;

    /**
     * <婚姻状态，0：未婚；1：已婚>
     */
    private Short maritalStatus;
    /**
     * 哺乳或怀孕状态
     */
    private Integer pregnancy;
    /**
     * <身高>
     */
    private Integer height;
    /**
     * <体重>
     */
    private Integer weight;
    /**
     * 病情描述
     */
    private String description;
    /**
     * amc诊断id
     */
    private String amcId;
    /**
     * amc诊断结果
     */
    private AmcResultVO amcResult;
    /**
     * <过敏药物>
     */
    private MSelectOrOthers medicAllergys;
    /**
     * <过往病史>
     */
    private MSelectOrOthers pastDiseases;

    /**
     * <家族病史。数组size=0标识无家族病>
     */
    private List<MFamilyDisease> familyDiseases;
    /**
     * <遗传病>
     */
    private MSelectOrOthers hereditaryDiseases;

    /**
     * <吸烟情况>
     */
    private MSmoke smoke;
    /**
     * <饮酒情况>
     */
    private MDrink drink;

    /**
     * 问诊时间 毫秒值：<code>vistingTime</code>
     */
    private Long vistingTime;
    /**
     * 医嘱图片列表：<code>adviceList</code>
     */
    private List<MCaseFileImg> adviceList = new ArrayList<>();

    /**
     * 处方单图片列表：<code>prescriptionList</code>
     */
    private List<MCaseFileImg> prescriptionList = new ArrayList<>();

    /**
     * 检验单图片列表：<code>checkList</code>
     */
    private List<MCaseFileImg> checkList = new ArrayList<>();

    public Short getMaritalStatus() {
        return this.maritalStatus;
    }

    public void setMaritalStatus(Short maritalStatus) {
        this.maritalStatus = maritalStatus;
    }

    public Integer getPregnancy() {
        return this.pregnancy;
    }

    public void setPregnancy(Integer pregnancy) {
        this.pregnancy = pregnancy;
    }

    public Integer getHeight() {
        return this.height;
    }

    public void setHeight(Integer height) {
        this.height = height;
    }

    public Integer getWeight() {
        return this.weight;
    }

    public void setWeight(Integer weight) {
        this.weight = weight;
    }

    public String getDescription() {
        return this.description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getAmcId() {
        return this.amcId;
    }

    public void setAmcId(String amcId) {
        this.amcId = amcId;
    }

    public AmcResultVO getAmcResult() {
        return this.amcResult;
    }

    public void setAmcResult(AmcResultVO amcResult) {
        this.amcResult = amcResult;
    }

    public MSelectOrOthers getMedicAllergys() {
        return this.medicAllergys;
    }

    public void setMedicAllergys(MSelectOrOthers medicAllergys) {
        this.medicAllergys = medicAllergys;
    }

    public MSelectOrOthers getPastDiseases() {
        return this.pastDiseases;
    }

    public void setPastDiseases(MSelectOrOthers pastDiseases) {
        this.pastDiseases = pastDiseases;
    }

    public List<MFamilyDisease> getFamilyDiseases() {
        return this.familyDiseases;
    }

    public void setFamilyDiseases(List<MFamilyDisease> familyDiseases) {
        this.familyDiseases = familyDiseases;
    }

    public MSelectOrOthers getHereditaryDiseases() {
        return this.hereditaryDiseases;
    }

    public void setHereditaryDiseases(MSelectOrOthers hereditaryDiseases) {
        this.hereditaryDiseases = hereditaryDiseases;
    }

    public MSmoke getSmoke() {
        return this.smoke;
    }

    public void setSmoke(MSmoke smoke) {
        this.smoke = smoke;
    }

    public MDrink getDrink() {
        return this.drink;
    }

    public void setDrink(MDrink drink) {
        this.drink = drink;
    }

    public Long getVistingTime() {
        return this.vistingTime;
    }

    public void setVistingTime(Long vistingTime) {
        this.vistingTime = vistingTime;
    }

    public List<MCaseFileImg> getAdviceList() {
        return this.adviceList;
    }

    public void setAdviceList(List<MCaseFileImg> adviceList) {
        this.adviceList = adviceList;
    }

    public List<MCaseFileImg> getPrescriptionList() {
        return this.prescriptionList;
    }

    public void setPrescriptionList(List<MCaseFileImg> prescriptionList) {
        this.prescriptionList = prescriptionList;
    }

    public List<MCaseFileImg> getCheckList() {
        return this.checkList;
    }

    public void setCheckList(List<MCaseFileImg> checkList) {
        this.checkList = checkList;
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
}
